<template>	
	<view>
		<!-- 使用自定义的搜索组件 -->
		<view class="search-box">
			<my-search @click="gotoSearch"></my-search>
		</view>
	    <!-- 轮播图区域 -->
	    <swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" :circular="true">
	      <!-- 循环渲染轮播图的 item 项 -->
	    <swiper-item v-for="(item, i) in swiperList" :key="i">
	        <navigator class="swiper-item" :url="'/subpkg/goods_detail/goods_detail?goods_id=' + item.goods_id">
	          <!-- 动态绑定图片的 src 属性 -->
	          <image :src="item.image_src"></image>
	        </navigator>
	    </swiper-item>
	    </swiper>
	
			
		<!-- 分类区域 -->
	<view class="nav-list">
		<!-- 定义@click点击事件 -->
		<view class="nav-item" v-for="(item , i) in navList" :key="i" @click="navClickHandler(item)">
			<image :src="item.image_src" class="nav-img"></image>
		</view>
	</view>
		
	<!-- 楼层区域 -->
	<!-- 楼层的容器 -->
	<view class="floor-list">
		<!-- 每一个楼层的item项 -->
		<view class="floor-item" v-for="(item,i) in floorList" :key="i">
			<!-- 楼层的标题 -->
			<image :src="item.floor_title.image_src" class="floor-title"></image>
			<!-- 楼层的图片区域 -->
			<view class="floor-img-box">
				<!-- 楼层的左侧图片盒子 -->
				<navigator class="left-img-box" :url="item.product_list[0].url"> 
					<image :src="item.product_list[0].image_src" :style="{width: item.product_list[0].image_width + 'rpx'}" mode="widthFix"></image>
				</navigator>
				<!-- 右侧四个小盒子 -->
				<view class="right-img-box">
					<navigator class="right-img-item" v-for="(item2, i2) in item.product_list" :key="i2" v-if="i2 !== 0" :url="item2.url">
					    <image :src="item2.image_src" mode="widthFix" :style="{width: item2.image_width + 'rpx'}"></image>
					</navigator>>
				</view>
			</view>
		</view>
	</view>
	</view>
</template>

<script>
	// 导入自己封装的 mixin 模块
	import badgeMix from '@/mixins/tabbar-badge.js'
	
	export default {
	  // 将 badgeMix 混入到当前的页面中进行使用
		mixins: [badgeMix],
		data() {
			return {
//这是轮播图的数据列表
				swiperList:[],
//这是分类数据列表
				navList:[],
//这是楼层的数据
				floorList:[]
			};
		},
		onLoad() {
			//调用方法获取轮播图的数据
			this.getSwiperList(),
			//调用方法获取分类的数据
			this.getNavList(),
			//调用方法获取楼层数据
			this.getFloorList()
		},
		methods:{
			//获取轮播图数据的方法
			async getSwiperList(){
				 const { data: res } = await uni.$http.get('/api/public/v1/home/swiperdata')
				//请求失败的情况
				 if (res.meta.status !== 200) return uni.$showMsg()
			//请求成功后,将数据赋值给列表
				this.swiperList = res.message
				uni.$showMsg('数据加载完成！')
				
			},
			//在 methods 中定义获取数据的方法
			async getNavList(){
				//将data重命名为res
				const{ data : res } = await uni.$http.get('/api/public/v1/home/catitems')
				//请求失败的情况
				if (res.meta.status !== 200) return uni.$showMsg()
				//请求成功后,将数据赋值给列表
				this.navList = res.message
				uni.$showMsg('数据加载完成！')
			},
			//nav-item项被点击时候的事件处理函数
			navClickHandler(item){
				//判断点击是哪个nav
				if (item.name === '分类'){
					uni.switchTab({  //因为cate是tabbar页面所以用SwitchTab
						url:'/pages/cate/cate'
					})
				}
			},
			//在methods中定义获取楼层数据方法
			async getFloorList(){
				const { data:res } = await uni.$http.get('/api/public/v1/home/floordata')
				 if (res.meta.status !== 200) return uni.$showMsg()
				  res.message.forEach(floor => {
				     floor.product_list.forEach(prod => {
				       prod.url = '/subpkg/goods_list/goods_list?' + prod.navigator_url.split('?')[1]
				     })
				   })
				 this.floorList = res.message
			},
			gotoSearch(){
				uni.navigateTo({
					url:'/subpkg/search/search'
				})
			}	
		}
	}
</script>

<style lang="scss">
	swiper{
		height: 330rpx;
		.swiper-item,
		image{
			width: 100%;
			height: 100%;
		}
		}
	.nav-list{
		display: flex;
		justify-content: space-around;
		margin: 15px 0;
		.nav-img{
			width: 128rpx;
			height: 140rpx;
		}
	}
	.floor-title{
		width: 100%;
		height: 60rpx;
	}
	.right-img-box{
		display: flex;
		flex-wrap: wrap;     //可换行
		justify-content: space-around;     //分散对齐
	}
	.floor-img-box{
		display: flex;
		padding-left: 10rpx;
		
	}
	.search-box{
		position: sticky;        //设置定为效果为吸顶
		top: 0;                  //吸顶的位置
		z-index: 999;            //提高层级，防止被轮播图覆盖
	}

</style>
